Open In Colab

Machine Learning Techniques - ISIS4219

Segundo Semestre - 2021

Integrantes

Problema

Las enfermedades cardiovasculares son la principal causa de muerte en el mundo, y se calcula que cobran 17,9 millones de vidas al año (OMS). La enfermedad de las arterias coronarias es el tipo más común de enfermedad cardíaca y se produce debido a las obstrucciones (placa) desarrolladas en el interior de las arterias coronarias (vasos sanguíneos que alimentan los músculos del corazón). Los cardiólogos utilizan diversas técnicas de imagen y mediciones invasivas de la presión arterial para examinar y controlar la gravedad de dichas obstrucciones.
Los factores de riesgo conductuales más importantes de estas enfermedades son una dieta poco saludable, la inactividad física, el consumo de tabaco y el uso nocivo del alcohol. Los efectos de los factores de riesgo pueden manifestarse en las personas en forma de aumento de la presión arterial, aumento de la glucosa en sangre, aumento de los lípidos en sangre y sobrepeso y obesidad. Identificar a las personas con mayor riesgo de sufrir enfermedades cardiovasculares y garantizar que reciban el tratamiento adecuado puede evitar muertes prematuras. Con este objetivo en mente, se quiere utilizar las técnicas de machine learning para construir un modelo que permita predecir qué pacientes pueden estar en riesgo de padecer este tipo de cardiopatía.


Referencias.
OMS (s.f.). “Cardiovascular diseases”.

Fuente de Datos.
Kaggle

Exploración y descripción de los datos

Con el objetivo de tener un mayor entendimiento de la información que se tiene para el correspondiente análisis, se realizarán una serie de etapas que nos ayudarán con este proceso. Para este caso se realizará:

Diccionario de datos

Entendimiento y análisis de los datos

Cargue y entendimiento del dataset
Cargue archivo base
Verificación de los datos
análisis validación inicial

Con base en las métricas iniciales, se observa que los datos no presentan valores nulos, sin embargo se observa:

Por tal motivo se va a hacer el cambio de datos y validar nuevamente la presencia de valores nulos o errores.

Con base en el proceso anterior se evidencia:

EDA

Análisis comportamiento de edad

Presión arterial en reposo

Colesterol sérico

Frecuencia máxima alcanzada

Con base en los resultados anteriores:

La imagen anterior muestra que el 85% de los valores es True. Por tanto, es posible que no sea una variable discrepante.

Se puede evidenciar según los datos anteriores:

El gráfico anterior nos permite observar:

Los pacientes en su variable slope, cómo en los defectos tienen un comportamiento similar entre grupos, sin embargo se observa:

Según el gráfico anterior se puede concluir:

El gráfico nos permite analizar:

Preparación de los datos

A continuación se empezará con el proceso de preparación de datos que van a ser utilizados para entrenar y validar el modelo.

Modelado

Configuración dataset entrenamiento y validación

Configuración de hiperparámetros para entrenar el modelo

Entrenamiento del modelo

Evaluación e interpretación de resultados

Conclusiones

* Como se puede observar al comprar las métricas del set de entrenamiento y de test. Se puede evidenciar que el modelo no esta generalizando lo suficiente. Ya que la mayoría de los datos los clasifica como “0”. Esto en gran parte se debe al sesgo de los datos, debido a que gran parte de la muestra es de clase “0”. Para mejorar dicha medición se podría intentar balancear las clases por medio de la eliminación de datos de la clase 0. Sin embargo, hay que considerar que esta estrategia puede disminuir en gran medida la cantidad de datos totales para el entrenamiento.
* A nivel de accuracy, se observa que en la data de `train` y `test` está relativamente cerca, con lo cual se evidencia que el modelo está generalizando lo suficiente.
* A nivel de `precision` y `recall` en los grupos 3 y 4 se evidencia que poseen valores de 0, mostrando la incapacidad del modelo para clasificar correctamente en estos grupos.
* El mayor problema evidenciado es la falta de un conjunto de datos mayor para las categorías diferente de 0, el desbalanceo del conjunto de datos hace que las predicciones sobre este sean poco efectivas, por lo cual se sugiere añadir nuevos datos para mejorar el performance del modelo.
* Inicialmente se corrió un modelo con la variable edad sin discretizar, pero se evidencia que el modelo tiene un peor performance, por lo cual finalmente se opta por la estrategía de Kbinning a fin de crear rangos de edad óptimos.
* También se realiza una ejecución del modelo sin generar variables dummy a las categorías, sin embargo se evidencia que esto no ayuda al modelo a la hora de predecir, por tal motivo se aplica este método a las variables categóricas y se deja este conjunto final de datos para entrenar y validar.